// 作用：根据传递过来的 action.type 处理计数器的状态的
// 参数：默认状态、action => (type、payload)
// !#1 改成按需导出
export const counter = (state = 10, action) => {
  // 根据 action.type 的不同做不同的处理并返回
  switch (action.type) {
    case 'COUNTER_INCREMENT':
      // !注意
      // 1. 状态的不可变性
      // 2. 把处理完后的结果记得返回
      return state + action.payload
    case 'COUNTER_DECREMENT':
      return state - action.payload
    // 一遍都要有一个默认返回的 state
    default:
      return state
  }
}

// !#2 用户信息的 user
const initUser = { username: '尼古拉斯赵四', age: 18 }
export const user = (state = initUser, action) => {
  // action => { type:  'MODIFY_USER', payload: { username: 'yyy', age: 19 }}
  switch (action.type) {
    case 'USER_MODIFY':
      return {
        ...state,
        ...action.payload,
      }
    default:
      return state
  }
}